using System;
using System.Net;

namespace Cirrostrata.Abstractions.Net
{
    public interface IHttpQuery
    {
        IHttpQuery Post(Uri uri);
        IHttpQuery Get(Uri uri);
        IHttpQuery Put(Uri uri);
        IHttpQuery Delete(Uri uri);
        IHttpQuery ContentType(string contentType);
        IHttpQuery Data(byte[] data);
        IHttpQuery SetFormField(string field, string value);
        IHttpQuery KeepCookies { get; }
        IHttpQuery DiscardCookies { get; }
        byte[] Result { get; }
        string ResultText { get; }
        HttpStatusCode Status { get; }
        IHttpQuery Go();
        IHttpQuery WithCredentials(ICredentials credentials);
    }
}